Content addressable memories, often referred to as associative memories, have memory locations that are identified by the contents of the location or a portion thereof. A CAM can be written to and read from like a traditional memory array, and can also be searched to identify one or more address locations that store a desired value. Generally, when in a search mode, a CAM will return an address containing a given search string (data pattern). A binary CAM is capable of storing information in two different logic states, namely, a binary “0” state or a binary “1” state. A ternary CAM cell provides a “don't care” logic state, in addition to the binary “0” and binary “1” states.
Binary and ternary CAM cells are typically implemented using static random access memory (SRAM), dynamic RAM (DRAM), or non-volatile memory technologies. CAM cells based on SRAM technology have become increasingly popular, at least in part due to their relatively fast times for performing write and search operations.
Increasingly, there is a need for three or four state CAMs that provide at least three states (logic 0, logic 1, and a don't care state). A further need exists for a hybrid CAM that includes at least one binary CAM bit and at least one higher order CAM bit, such as a ternary CAM bit. Yet another need exists for a three or four state CAM that uses existing binary CAMs without modifying the underlying binary CAM.